//Given a non-empty array of decimal digits representing a non-negative integer,
// increment one to the integer. 
//
// The digits are stored such that the most significant digit is at the head of 
//the list, and each element in the array contains a single digit. 
//
// You may assume the integer does not contain any leading zero, except the numb
//er 0 itself. 
//
// 
// Example 1: 
//
// 
//Input: digits = [1,2,3]
//Output: [1,2,4]
//Explanation: The array represents the integer 123.
// 
//
// Example 2: 
//
// 
//Input: digits = [4,3,2,1]
//Output: [4,3,2,2]
//Explanation: The array represents the integer 4321.
// 
//
// Example 3: 
//
// 
//Input: digits = [0]
//Output: [1]
// 
//
// 
// Constraints: 
//
// 
// 1 <= digits.length <= 100 
// 0 <= digits[i] <= 9 
// 
// Related Topics 数组 
// 👍 688 👎 0


package leetcode.editor.cn;
//Java：Plus One
 class P66PlusOne{
    public static void main(String[] args) {
        Solution solution = new P66PlusOne().new Solution();
        // TO TEST
    }
    //leetcode submit region begin(Prohibit modification and deletion)
class Solution {

    public int[] plusOne(int[] digits) {
        int count = 0;
        if (digits[digits.length - 1] == 9) {
            for (int i = 0; i < digits.length; i++) {
                if (digits[i] == 9) {
                    count++;
                }

            }
            if (count == digits.length) {
                int[] arr = new int[digits.length + 1];
                arr[0] = 1;
                return arr;
            }
            for (int i = digits.length - 1; i >= 0; i--) {
                if (digits[i] == 9) {
                    digits[i] = 0;
                } else {
                    digits[i] = digits[i] + 1;
                    return digits;

                }
            }

        }
        digits[digits.length - 1] = digits[digits.length - 1] + 1;
        return digits;
    }
}
//leetcode submit region end(Prohibit modification and deletion)

}